package day5;

// 正常情况下只有使用同一个包下面的其他类可以不用导包，
// 但是对于java.lang包下面的类使用的时候不需要导包
// import java.lang.System;
// import java.lang.String;

public class Student extends Person{

	private String className;
	
	public void study() {
		System.out.println(name + "正在" + className + "班学习");
	}
	
	// 实例方法，调用这个方法的时候Student对象就已经创建了，
	// 在Java里面创建子类的时候一定会帮你去创建父类对象
//	@Override
//	public void show() {
//		
//	}
	
	// 这是一个实例方法
	@Override
	public void show() {
		// super代表父类对象
		// super.show();
		System.out.println("-------------");
		//System.out.println("id: " + id + ", name: " + name + ", className:" + className);
		System.out.println(toString());
	}
	
//	public Student() {
//		// TODO Auto-generated constructor stub
//	}
//	
//	public Student(int id, String name, int age, String className) {
//		// super();
//		// super(id, name, age);
//		this.id = id;
//		this.name = name;
//		this.age = age;
//		this.className = className;
//	}

	public Student() {
		// super()代表父类无参构造方法，
		// 在Student类里面就代表Person()无参构造方法
		//super();
		System.out.println("Student.Student()  --1");
	}

	public Student(int id, String name, int age, String className) {
		// 代表父类有参构造方法
		// public Person(int id, String name, int age)
		// new Person(1,"zhansgan",23);
		super(id, name, age);
		// Student student = new Student();
		// this代表当前new出来的对象student
		// 就类似于student.className
		this.className = className;
		System.out.println("Student.Student()  --2 ");
	}
	
	public Student(int id, String name) {
		// new Student(id, name, 18, "Java1912");
		this(id, name, 18, "Java1912");
	}
	
	

	public String getClassName() {
		return className;
	}

	public void setClassName(String className) {
		this.className = className;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + ", className=" + className + "]";
	}

	
	
}
